﻿using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;


namespace GatewayServer.Common
{
    /// <summary>
    /// 异常过滤器
    /// </summary>
    public class ExceptionFilter : Attribute, IExceptionFilter
    {
        /// <summary>
        /// 没有之前和之后事件,当程序发生没有捕获的异常时候执行
        /// </summary>
        /// <param name="context"></param>
        public void OnException(ExceptionContext context)
        {
            //异常信息
            var ex = context.Exception;
            //这里可以写入异常日志到数据库、文件或者控制台
            Console.WriteLine("错误信息：" + ex.Message);

            /*
             * 方便测试，此处将错误日志信息返回
             */
            context.Result = new ContentResult()
            {
                Content = ex.Message,
                ContentType = "text/html"
            };
        }
    }
}
